Introdução ao Blockchain

Mohammad (Mo) Zia*

ITS Rio
ITS FEED

--

Tradução: Janaina Costa

Série de artigos para o projeto “Blockchain para Impacto Social

Introdução

Especialistas em tecnologia e economistas consideraram a blockchain como a inovação mais disruptiva do mundo desde o advento da Internet. A tecnologia blockchain está revolucionando a maneira como as empresas fazem negócios e como os governos interagem com seus constituintes. Blockchain pode auxiliar em soluções para meios de pagamentos seguros, identificação digital, administrar eleições eletronicamente e rastrear cadeias de suprimentos. O Bitcoin, a criptomoeda mais conhecida do mundo, é viabilizada pela tecnologia blockchain. Em 2020, o LinkedIn anunciou que a blockchain era a habilidade profissional mais procurada do mundo.

Apesar de seu crescente impacto em nossa economia, a blockchain ainda é pouco ou mal compreendida. Uma infinidade de informações com níveis variados de detalhes técnicos que tornam a compreensão dos fundamentos da blockchain intimidante. Se você tem pouco ou nenhum entendimento de blockchain, você está no lugar certo.

O Problema

Vamos começar esta jornada analisando um problema que a blockchain busca solucionar.

Considere Roberta e Carol.

Semana que vem é aniversário de Carol e ela quer vir ao Brasil para comemorar. A amiga Roberta, como presente de aniversário, quer contribuir com a passagem aérea,mas não tem dinheiro em espécie. Roberta liga para seu banco e pede que transfiram US$ 1.000 para Carol. Uma semana depois, Carol está a caminho do Brasil.

Como aconteceu essa transferência de dinheiro? Roberta e Carol confiavam no banco para administrar seu dinheiro. Primeiro, o banco verificou que Roberta tinha US$ 1.000 em sua conta. Em segundo lugar, o banco fez um lançamento em seu histórico de transações de conta, conhecido como livro-razão, refletindo o saque da conta de Roberta e o depósito na conta de Carol.

Não houve transferência física de dinheiro; em vez disso, houve uma atualização no livro-razão do banco, que não é de propriedade de Roberta nem de Carol.

Roberta e Carol confiaram em um terceiro para gerenciar uma transação entre elas. A blockchain procura eliminar essa dependência de terceiros.

A Solução

Em nosso exemplo anterior, Roberta e Carol contavam com um livro-razão centralizado e controlado pelo banco. Lembre-se, um livro-razão é um histórico de transações entre contas. Diversamente a um livro-razão controlado por banco, a blockchain é um livro-razão distribuído, o que significa que está disponível publicamente e é compartilhado entre uma rede de participantes.

Voltemos a Roberta, Carol e seu novo amigo Manuel. Eles optaram por abandonar instituições financeiras tradicionais, que utilizam livro-razão centralizado. Em vez disso, criaram um novo sistema em que cada um deles têm uma cópia do livro-razão que eles mesmos atualizam.

Eles inicialmente anotam quanto dinheiro cada um deles têm. Quando Roberta quer enviar algum dinheiro para Carol, ela anuncia para todos os participantes desse novo sistema. Cada um verifica se Roberta tem fundos suficientes e, em caso afirmativo, anota a subtração do saldo de Roberta e a adição ao saldo de Carol, marcando que a transação ocorreu. No final do mês, eles liquidam seu dinheiro de acordo com os últimos saldos nas cópias do livro-razão que cada um possui.

Está claro até aqui? Basicamente, Carol, Roberta e Manuel criaram um livro-razão distribuído como uma alternativa para a dependência de um intermediário, como o banco. A blockchain é um tipo de livro-razão distribuído com segurança aprimorada graças a criptografia assimétrica, funções de hash e mecanismos de consenso.

Criptografia Assimétrica

O que impede Manuel de dizer desonestamente a Roberta que Carol lhe enviou algum dinheiro?

É aqui que entra em jogo um conceito conhecido como criptografia assimétrica. Imagine que você tem uma caneta com tinta mágica. Quando você escreve uma mensagem e a segura sob uma luz especial, a mensagem ficará verde. Se você usar qualquer outra caneta para escrever essa mensagem, essa mesma mensagem ficará vermelha. É assim que a criptografia assimétrica funciona. Seu computador executa um programa especial para gerar uma chave pública e uma chave privada.

A chave privada é como a caneta mágica e a chave pública é como a luz especial.

Você usa a chave privada para assinar mensagens que podem ser verificadas com a chave pública. Você possui muitas dessas luzes especiais e as distribui livremente para quem quer que seja, mas você só possui uma caneta mágica. Quando Carol quer enviar algum dinheiro para Manuel, ela usa sua chave privada para assinar essa mensagem e transmiti-la a todos os participantes da rede. Ela também passa sua chave pública para todos.

Mais tarde, quando alguém está olhando para o registro de transações e vê que Carol enviou algum dinheiro para Manuel, eles usariam a chave pública de Carol para verificar se ela é quem assinou essa transação. Em outras palavras, eles usariam a lâmpada especial para ver se a mensagem brilha em verde. Se Manuel tentasse falsificar a assinatura de Carol para assinar esta transação, a chave pública de Carol não conseguiria verificá-la. A assinatura forjada de Manuel brilharia em vermelho sob a lâmpada.

Roberta, Carol e Manuel agora têm um sistema para acompanhar suas várias transações. À medida que mais e mais pessoas aderirem ao seu sistema, o volume de transações também aumentará. As transações podem ser agrupadas em blocos e um novo mecanismo precisa ser introduzido para validar a autenticidade desses blocos.

Funções de hash

Para entender como os blocos são validados, precisamos primeiro entender as funções de hash. Uma função hash recebe uma entrada (input) de extensão arbitrária e produz um resultado (output) determinístico de extensão fixa. Isso significa que você pode atestar através de uma função hash qualquer coisa, como “Roberta pagou Carol $ 1.000” ou “Carol depositou $ 200 em sua conta”, e a função hash produzirá uma sequência aparentemente aleatória de letras e números como resultado. Digamos que o resultado terá 5 caracteres. Esse resultado é chamado de hash.

Para ilustrar, considere-se que dissemos à nossa função hash “Roberta pagou a Carol $ 1.000” e produziu o resultado “d7a1e”. Toda vez que você informar a função de hash “Roberta pagou a Carol $ 1.000”, ela sempre informará “d7a1e”. Se você modificar a entrada, mesmo que levemente, ela produzirá um resultado completamente diferente. Por exemplo, se alterarmos “Roberta pagou a Carol $ 1.000” para “Roberta pagou a Carol $ 1.001”, O resultado poderia mudar de “d7a1e” para “ef3c2”. É completamente diferente.

Outra propriedade importante é que, se você receber um hash, é quase impossível determinar a entrada. Dado o hash “a54fb”, você não teria como saber o que foi passado para a função hash para produzir esse hash além de tentar todas as entradas possíveis que você pode imaginar até obter o resultado que está procurando.

Existe uma grande variedade de funções de hash. Nossa função hash de exemplo produziu um resultado com 5 caracteres, mas a função hash usada pelo Bitcoin produz um resultado com 64 caracteres.

Mecanismos de Consenso

Um mecanismo de consenso ajuda a impedir que uma parte mal-intencionada modifique uma cadeia de blockchain. Quando executamos nossos blocos, nosso lote de transações, através de uma função hash, recebemos esses hashes que são completamente aleatórios. E se quiséssemos especificamente que o hash começasse com cinco zeros? Sabemos que não há como descobrir isso, exceto tentar todas as combinações de entrada possíveis que podemos imaginar. O que podemos fazer é pegar nosso lote de transações e colocar um número no final.

Como exemplo, considere nossas transações e o número “1” para produzir um hash que começa com “f81b0…”. Se mudarmos esse “1” para um “2”, obtemos o hash “d8354…”. À medida que continuamos a aumentar esse número, continuamos a obter diferentes hashes até que um comece com “00000…”. Talvez esse número acabe sendo “”94.916.832”. Foram muitas tentativas pelas quais tivemos que passar.

Esse número é chamado de nonce (número usado apenas uma vez) e esse processo é um exemplo de prova de trabalho (PoW). Lembre-se, o motivo pelo qual passamos por esse processo é para que uma parte mal-intencionada não possa modificar facilmente nossos bloqueios. Se algum dado dentro do bloco for alterado, isso significa que muito esforço teria que ser gasto para calcular um novo nonce para que esse bloco permanecesse válido.

A prova de trabalho é um exemplo de mecanismo de consenso. Mecanismos de consenso são importantes porque em um sistema distribuído tal qual estamos usando, precisamos de uma maneira de chegar a um acordo sobre quais cópias dos livros entre nossos participantes é válida. Existem outros mecanismos de consenso, mas a prova de trabalho é a usada pelo Bitcoin.

Encadeando o todo

Vamos recapitular onde estamos. Temos transações que são assinadas criptograficamente para manter sua integridade. Essas transações, além de um nonce, são agrupadas em blocos que produzem um hash começando com alguns zeros. Resta agora manter nossos blocos em ordem. Fazemos isso pegando o hash produzido por um bloco e adicionando-o ao início do próximo bloco. Para fazer o hash desse próximo bloco, além do lote de transações e do nonce, agora também incluímos o hash do bloco anterior como entrada para nossa função de hash para este bloco. Ao pegar o hash do bloco anterior e iniciar nosso próximo bloco com esse hash, agora encadeamos esses blocos — criando uma cadeia de blocos. Por isso, blockchain.

Em nosso sistema distribuído, todos têm uma cópia desse blockchain. Eles estão todos aguardando novas transações sejam adicionadas a um bloco e, eventualmente, calcular o nonce para esse bloco. Participantes mal-intencionados podem adulterar dados de suas cópias do blockchain, que então transmitem a outros, mas desde que a maioria dos participantes do sistema seja bem intencionada, haverá um consenso entre eles sobre qual é o verdadeiro blockchain.

Sumário

Blockchains procuram resolver o problema de confiança e dependência de terceiros identificado acima. Podem ser aplicados para viabilizar plataformas de contratos inteligentes, como Ethereum, proteger e rastrear cadeias de suprimentos de alimentos ou desenvolver tokens não fungíveis, mais conhecidos como NFTs. As aplicações do setor público podem variar de sistemas de registro de propriedades baseados em blockchain a votação eleitoral baseada em blockchain. Em 2018, o mercado global de blockchain foi avaliado em US$ 1,57 bilhão e estima-se que cresça mais de cem vezes, atingindo US$ 163 bilhões até 2027.

A presença da blockchain está aumentando exponencialmente, mas isso também representa muitos desafios para formuladores de políticas e engenheiros de software. Por exemplo, a mineração de bitcoins representa um desafio ambiental significativo devido ao processo intensivo de energia necessário para minerar criptomoedas, e os NFTs também apresentam desafios significativos relacionados a fraude e segurança cibernética. Mais amplamente, diferentes tipos de blockchains estão tentando resolver o “trilema blockchain”, um termo que define o desafio que os engenheiros de software enfrentam na criação de uma blockchain que seja escalável, descentralizada e segura. É tecnicamente complexo fazer todos os três, daí o trilema.

Se você achou este documento útil, compartilhe-o.

Buscamos colaborar com diferentes atores por meio do Blockchain para Impacto Social, uma iniciativa do Instituto de Tecnologia e Sociedade (ITS) para melhorar o acesso às informações sobre blockchain e criar um fórum para discutir as oportunidades socioeconômicas decorrentes da economia blockchain.

Se você deseja colaborar com Blockchain para Impacto Social, envie um e-mail para: mzia@jd21.law.harvard.edu

Referências:

Agradecimentos especiais a Waj S., um engenheiro de software que ajudou a escrever os componentes técnicos deste relatório. Para obter informações mais detalhadas sobre funções de hash, problemas de segurança de blockchain e tecnologia de blockchain subjacente, consulte os seguintes artigos:

https://www.getastra.com/blog/knowledge-base/blockchain-security-issues

Gostou da leitura e gostaria de receber mais conteúdos como este na sua caixa de email? Inscreva-se através do link e receba conteúdos exclusivos: https://bit.ly/3grTWPc

*Mohammad é um International Fellow com foco em governança e inclusão financeira no setor de blockchain, moeda digital, e tecnologia financeira. Ele também apoiará iniciativas de uso urbano de tecnologias emergentes. Mohammad completou seu JD pela Harvard Law School, seu MPP pela Oxford University e sua graduação pela University of Maryland. Mohammad é apaixonado por soluções baseadas em tecnologia para desafios econômicos e jurídicos em mercados emergentes. Ele fala sete idiomas e já viajou para quase cinquenta países.

--

--

O Instituto de Tecnologia e Sociedade do Rio estuda o impacto e o futuro da tecnologia no Brasil e no mundo. — www.itsrio.org